/**
 *
 * Vue3指令的钩子函数

    created 元素初始化的时候
    beforeMount 指令绑定到元素后调用 只调用一次
    mounted 元素插入父级dom调用
    beforeUpdate 元素被更新之前调用
    update 这个周期方法被移除 改用updated
    beforeUnmount 在元素被移除前调用
    unmounted 指令被移除后调用 只调用一次
————————————————
instance：  使用指令的组件实例。
value：     传递给指令的值。例如，在 v-my-directive="1 + 1" 中，该值为 2。
oldValue：  先前的值，仅在 beforeUpdate 和 updated 中可用。无论值是否有更改都可用。
arg：       传递给指令的参数(如果有的话)。例如在 v-my-directive:foo 中，arg 为 "foo"。
modifiers： 包含修饰符(如果有的话) 的对象。例如在 v-my-directive.foo.bar 中，修饰符对象为 {foo: true，bar: true}。
dir：       一个对象，在注册指令时作为参数传递。
————————————————
 * 图片懒加载
 *
 */
export default {
  async mounted(el, binding) {
    let url = await import('../../../assets/vue.svg')
    el.src = url.default
    let observer = new IntersectionObserver((entries) => {
      console.log(entries[0], el)
      if (entries[0].intersectionRatio > 0 && entries[0].isIntersecting) {
        setTimeout(() => {
          el.src = binding.value
          observer.unobserve(el)
        }, 2000)
      }
    })
    observer.observe(el)
  }
}